#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

#include<assert.h>

#include<string.h>

//qsort

//int Od_Ev(const void* e1, const void* e2)
//{
//	if (*((int*)e1) % 2 == 0 && *((int*)e2) % 2 != 0)
//		return 1;
//	else
//		return 0;
//}
//
//int Od_Ev(const void* e1, const void* e2)
//{
//	return *(int*)e2 % 2 - *(int*)e1 % 2;
//}
//void Swap(int* p1, int* p2)
//{
//	int tmp = *p1;
//	*p1 = *p2;
//	*p2 = tmp;
//}
//
//
//void Qsort(void* base, int num, int wd, int (*cmp)(const void* e1, const void* e2))
//{
//	int i = 0;
//
//	for (i = 0; i < num - 1; i++)
//	{
//		int j = 0;
//		int flag = 1;
//
//
//		for (j = 0; j < num - 1 - i; j++)
//		{
//			if (Od_Ev((char*)base + j * wd, (char*)base + (j + 1) * wd) > 0)
//			{
//				Swap((char*)base + j * wd, (char*)base + (j + 1) * wd);
//				flag = 0;
//			}
//		}
//		if (flag == 1)
//			break;
//	}
//}
//
//
//
//int main()
//{
//	int a1[] = { 1,2,3,4,5,6,7,8,9,10 };
//
//	size_t n = sizeof(a1) / sizeof(a1[0]);
//
//	size_t sz = sizeof(a1[0]);
//
//	for (int i = 0; i < n; i++)
//	{
//		printf("%d ", a1[i]);
//	}
//	printf("\n");
//
//	Qsort(a1, n, sz, Od_Ev);
//
//	for (int i = 0; i < n; i++)
//	{
//		printf("%d ", a1[i]);
//	}
//	printf("\n");
//
//	return 0;
//}
//
